﻿


// 当前行号(递增)

var currentItem = 1;

// 新增行


function insertItem(pos,str)
{
	var oPos = document.all[pos];
	var sHtml = filterFactory(str);		// 页面声明，以供自定义修改
	oPos.innerHTML += sHtml;
	initializeFactory();				// 页面声明，以供自定义修改
	currentItem ++;
}

// 移除行


function removeItem(id,key,url)
{
	
	var oID = document.all[key];
	var sVal = oID.value;

	if ( sVal != "" )
	{
		if ( !confirm("确定要删除该条记帐明细吗？") ) return;
		
		var str = "<xml><key>"+sVal+"</key></xml>";
	
	
		try
		{
			var obj = getXmlHttp(str,url);

			var xRoot = obj.documentElement.selectSingleNode("data");
			
			if ( xRoot.text == "true" )
				alert("删除成功！") ;
			else
				return ;

		}
		catch(e)
		{
			alert("删除失败，请重试！") ;
			return ;
		}
	
	}

	var oItem = document.all[prefixName+id];
	oItem.removeNode(true);
	
}


// 过滤模版字符串中的特殊符号(内置方法)
// 参数说明:
// str		需被过滤的模版
// sign		模版中的过滤标志
// value	模版中的过滤标志的替换值


function filterSignByValue(str,sign,value)
{
	var sHtml = "";
	
	while ( str.indexOf(sign) > 0 )
	{
		str = str.replace(sign,value);
	}

	sHtml = str;
	return sHtml;
}

// 初始化InputText(内置方法)
// 参数说明:
// o	InputText name(string) 或 对象(object)
// v	InputText value(string)

function initializeInputText(o,v)
{
	var oInputText = null;
	if ( typeof(o) == "string" )
		oInputText = document.all[o];
	else if( typeof(o) == "object" )
		oInputText = o;
	else
		return;
	
	if ( typeof(oInputText) == "undefined" ) return;
	
	oInputText.value = v;
}


// 初始化Select下拉列表(内置方法)
// 参数说明:
// o	Select name(string) 或 对象(object)
// a	Array 二维数组对象(object)

function initializeSelectArray(o,a)
{
	var oSelect = null;
	if ( typeof(o) == "string" )
		oSelect = document.all[o];
	else if( typeof(o) == "object" )
		oSelect = o;
	else
		return;

	if ( typeof(oSelect) == "undefined" ) return;
	
	for ( var i=0; i<a.length; i++ )
	{
		if ( typeof(a[i]) == "object" )
			oSelect.options[oSelect.options.length] = new Option( a[i][0], a[i][1] );
		else
			continue;
	}
}

// 初始化Select下拉列表(内置方法,使用了xmlhttp调用了数据库方法)
// 参数说明:
// o	Select name(string) 或 对象(object)
// d	数据字典目录 metadir(string)

function initializeSelectMeta(o,d,v)
{
	var oSelect = null;
	if ( typeof(o) == "string" )
		oSelect = document.all[o];
	else if( typeof(o) == "object" )
		oSelect = o;
	else
		return;

	if ( typeof(oSelect) == "undefined" ) return;
	
	var str = "<xml><MetaDirName>" + d + "</MetaDirName></xml>";
	var url = jsFolder + "getMetaFiles.aspx";
	var obj = getXmlHttp(str,url);
	
	var xRoot = obj.documentElement.selectSingleNode("data");
	var xNode = null;
	var len = xRoot.childNodes.length;
	
	var metaFilesID = "";
	var metaFilesName = "";
	
	var selected = 0;
	
	for ( var i=0; i<len; i++ )
	{
		xNode = xRoot.childNodes[i];
		metaFilesID = xNode.selectSingleNode("MetaFilesID").text;
		metaFilesName = xNode.selectSingleNode("MetaFilesName").text;
		
		oSelect.options[oSelect.options.length] = new Option(metaFilesName,metaFilesName);
		
		if ( v == metaFilesID || v == metaFilesName ) selected = i;
	}
	
	oSelect.options.selectedIndex = selected;
}







// 通过xmlhttp获取数据库等中的数据

function getXmlHttp(str,url)
{
	var objxml,objhttp;
 	objxml=new ActiveXObject("Microsoft.XMLDOM");

 	objxml.loadXML(str);
	if (objxml.parseError.errorCode!=0)
	{
		alert("1");
		return;
	}

	try
	{   
		objhttp=new ActiveXObject("Microsoft.XMLHTTP");
		objhttp.Open("post",url,false);
		objhttp.setRequestHeader("Content-Type","text/xml");
		objhttp.Send(objxml);
  	}
	catch(e)
	{
		alert("2");
		return false;
	}

	//alert(objhttp.responseText);
	//alert(objhttp.responseXML.xml);
	return objhttp.responseXML;
}











